Crate lightning_transaction_sync
source ·Expand description
Provides utilities for syncing LDK via the transaction-based Confirm
interface.
The provided synchronization clients need to be registered with a ChainMonitor
via the
Filter
interface. Then, the respective fn sync
needs to be called with the Confirm
implementations to be synchronized, i.e., usually instances of ChannelManager
and
ChainMonitor
.
Features and Backend Support
esplora-blocking
enables syncing against an Esplora backend based on a blocking client.esplora-async
enables syncing against an Esplora backend based on an async client.esplora-async-https
enables the async Esplora client with support for HTTPS.
Version Compatibility
Currently this crate is compatible with nodes that were created with LDK version 0.0.113 and above.
Usage Example:
ⓘ
let tx_sync = Arc::new(EsploraSyncClient::new(
esplora_server_url,
Arc::clone(&some_logger),
));
let chain_monitor = Arc::new(ChainMonitor::new(
Some(Arc::clone(&tx_sync)),
Arc::clone(&some_broadcaster),
Arc::clone(&some_logger),
Arc::clone(&some_fee_estimator),
Arc::clone(&some_persister),
));
let channel_manager = Arc::new(ChannelManager::new(
Arc::clone(&some_fee_estimator),
Arc::clone(&chain_monitor),
Arc::clone(&some_broadcaster),
Arc::clone(&some_router),
Arc::clone(&some_logger),
Arc::clone(&some_entropy_source),
Arc::clone(&some_node_signer),
Arc::clone(&some_signer_provider),
user_config,
chain_params,
));
let confirmables = vec![
&*channel_manager as &(dyn Confirm + Sync + Send),
&*chain_monitor as &(dyn Confirm + Sync + Send),
];
tx_sync.sync(confirmables).unwrap();
Structs
- EsploraSyncClient
esplora-blocking
oresplora-async
Synchronizes LDK with a givenEsplora
server.
Enums
- An error that possibly needs to be handled by the user.